perm filename TEST1.SAI[SAI,BGB]2 blob
sn#056548 filedate 1973-08-05 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "TEST"
C00005 ENDMK
C⊗;
BEGIN "TEST"
DEFINE !="COMMENT";
DEFINE π="3.1415927";
REQUIRE "⊂⊃⊂⊃" DELIMITERS;
REQUIRE "GEOMES.HDR" SOURCE_FILE;
INTEGER B1,B2,F,E,V,V0,T;
INTEGER WORLD,WINDOW,CAMERA;
EXTERNAL SIMPLE PROCEDURE DPYSET(INTEGER ARRAY X);
EXTERNAL SIMPLE PROCEDURE DPYOUT(INTEGER X);
EXTERNAL SIMPLE PROCEDURE AIVECT(INTEGER X,Y);
EXTERNAL SIMPLE PROCEDURE AVECT(INTEGER X,Y);
EXTERNAL SIMPLE PROCEDURE DPYSST(STRING STR);
INTEGER ARRAY DPYBUF[0:100];
DPYSET(DPYBUF);
AIVECT(-400,-400);
AVECT(+400,-400);
AVECT(+400,+400);
AVECT(-400,+400);
AVECT(-400,-400);
AIVECT(0,0);DPYSST("HI THERE YOU ALL.");DPYOUT(0);
OUTSTR("DO WE HAVE A DISPLAY NOW ?");INCHRW;
! UNIVERSE CREATION;
WORLD ← MKWORLD; ! MAKE A WORLD;
WINDOW ← MKWINDOW; ! MAKE A WINDOW;
CAMERA ← MKCAMERA; ! MAKE A CAMERA;
BATT(WORLD,WINDOW); ! BODY-ATTACH WORLD TO WINDOW;
BATT(CAMERA,WINDOW); ! BODY-ATTACH CAMERA TO WINDOW;
! BODY CREATION;
B1 ← MKCUBE(4.0,1.0,2.0); ! MAKE RECTANGULAR RIGHT PRISM;
B2 ← MKCOPY(B1); ! COPY THE PRISM;
! ACTION;
FOR T←1 STEP 1 UNTIL 30 DO
OUTSTR(13&10); ! FLUSH THE PAGE PRINTER;
TRANSLATE(B1,0,0,4); ! FOUR FEET +Z TOWARDS CAMERA;
ROTATE(B2,π/8,π/8,0); ! ROTATION ABOUT X & Y AXES;
WHILE TRUE DO
BEGIN
ROTATE(B1,0,-π/17,0); ! ROTATION CW ABOUT Y-AXIS;
FOR T←1 STEP 1 UNTIL 40 DO
BEGIN
ROTATE(B1,π/20,0,0); ! ROTATION CCW ABOUT X-AXIS;
ROTATE(B2,0,π/16,0); ! ROTATION CCW ABOUT Y-AXIS;
SHOW2(WINDOW,1); ! DISPLAY A SIMULATED IMAGE;
IF INCHRS≥1 THEN DONE; ! EXIT ON TYPE-ANY-KEY;
END;
END;
END "TEST"; BGB 19 MARCH 1973.